<?php
//Classe bdd
class Classe_Bdd
{
    //Variables
    private $connexion;

    //Constructeur
    public function __construct($login,$password,$base,$host,$encodage)
    {
        if(empty($login) OR empty($base) OR empty($host))
        {
            echo "<span style='color:red;'>ERREUR !!<br />Une ou plusieurs variable(s) n'ont pas été renseigné.</span>";
            echo "<br />".mysql_error();
        }
        else
        {
            $this->connexion = $this->connexion($login,$password,$base,$host,$encodage);
        }
    }

    /***************************************************************************
     * UTILITAIRE
     **************************************************************************/
    private function connexion($login,$password,$base,$host,$encodage)
    {
        $connect = @mysql_connect($host,$login,$password);
        //Règle l'encodage voulu
        mysql_query("SET NAMES '".$encodage."'");
        if(!$connect)
        {
            echo "<span style='color:red;'>ERREUR !!<br />Connexion MYSQL impossible.</span>";
            echo "<br />".mysql_error();
            exit;
        }
        if(!mysql_select_db($base,$connect))
        {
            echo "<span style='color:red;'>ERREUR !!<br />Connexion a la base de données impossible.</span>";
            echo "<br />".mysql_error();
            exit;
        }
        return $connect;
    }
    
    /***************************************************************************
     * FONCTIONS
     **************************************************************************/
    // Exécute une requete qui re renvoi pas de résultat
    public function query($requete)
    {		
        $resultat = mysql_query($requete,$this->connexion);

        if(@mysql_num_rows($resultat)==0)
        {
            //echo "Pas de r�sultats";
        }
        elseif(!$resultat)
        {
            echo "<span style='color:red;'>ERREUR !!<br />Impossible d'effectuer la requete au serveur.</span>";
            echo "<br />".mysql_error();
            echo "requete : ".$requete;
            exit;
        }

        return $resultat;
    }
    
    //Retourne un tableau de chaines des valeurs des champs demandés du 1er resultat
    public function fetchRow($requete){
        $resultat = $this->query($requete);
        $all = array();
        $all = mysql_fetch_assoc($resultat);
        return $all;
    }
    
    //Retourne un tableau de toutes les valeurs d'une requete
    public function fetchAll($requete) {
        $resultat = $this->query($requete);
        $all = array();
        while ($data = mysql_fetch_assoc($resultat)) {
            $all[] = $data;
        }
        return $all;
    }
    
    // Retourne un seul résultat
    public function fetchOne($requete){
        $resultat = $this->query($requete);
        return mysql_result($resultat, 0);
    }
		
    public function deconnexion()
    {
        mysql_close($this->connexion);
    }
    
    //Fonction qui retourne le dernier ID inséré en bdd
    public function last_id()
    {
        return mysql_insert_id();
    }
    
    //Fonction qui retourne le nombre d'entrées d'une table
    public function nbre_enregistrement($nom_table){
        $rq = "SELECT COUNT(*) 
                FROM ".$nom_table."";
        return $this->fetchOne($rq);
    }
}
?>